package haemers.reflection.tests 
{
	import nl.haemers.data.reflection.Property;
	/**
	 * ...
	 * @author Jonathan
	 * We use the Property as a base class how do you test them... Do we only test the extended versions?
	 */
	public class PropertyTest 
	{
		private var _booleanProperty:Property;
		private var _collectionProperty:Property;
		private var _customObjectProperty:Property;
		
		/** Public methods **/
		[Before]
		public function setup() : void
		{
			_booleanProperty = new Property(_boolXML);
		}
		
		[Test]
		public function testBasicProperty() : void
		{
			
			
			/*
			_property.declaredBy
			_property.hasSerialize()
			
			_property.ignore
			
			//only null testing
			_property.metadatas
			
			_property.name
			//Only null testing
			_property.objectType
			_property.overwriteable
			
			_property.propertyName
			
			_property.toString
			
			_property.writeable
			*/
		}
		
		[Test]
		public function testDataTypes() : void
		{
			//test all datatypes?
			//_property.dataType
		}
		
		[Test]
		public function testString() : void
		{
		
		}
		
		[After]
		public function teardown() : void
		{
			
		}
		/** Getters & Setters **/
		
		/** Protected methods **/
		
		/** Private methods **/
		
		private var _boolXML:XML = new XML(
		<accessor name="human" access="readwrite" type="Boolean" declaredBy="haemers.data.vo::TestVO">
			<metadata name="__go_to_definition_help">
			  <arg key="pos" value="1356"/>
			</metadata>
			<metadata name="__go_to_definition_help">
			  <arg key="pos" value="1427"/>
			</metadata>
		</accessor>
		);
		private var _collectionXML:XML = new XML(
			
		);
		private var _customObjectXML:XML = new XML(
		<accessor name="addressVO" access="readwrite" type="haemers.data.vo::AddressVO" declaredBy="haemers.data.vo::TestVO">
			<metadata name="Serialize">
			  <arg key="name" value="address"/>
			</metadata>			
			<metadata name="__go_to_definition_help">
			  <arg key="pos" value="1546"/>
			</metadata>
			<metadata name="__go_to_definition_help">
			  <arg key="pos" value="1664"/>
			</metadata>
		</accessor>
		);
	}

}